home *** CD-ROM | disk | FTP | other *** search
/ Mac Format 1996 April / MacFormat CD Edition MF36 (April 1996).iso / Shareware City / Developers / Tools Plus - GUI⁄Event libs / Tools Plus 2.6.1a Evaluat'n Kit / Tools Plus 2.6.1a / Tools Plus for Symantec C⁄C++ / ToolsPlus.h < prev    next >
Text File  |  1995-08-01  |  63KB  |  1,243 lines

  1. /*  Tools Plus (Version 2.6.1) header file for Symantec (THINK) C/C++
  2.  *  Copyright (C) 1989-95 Water’s Edge Software
  3.  *
  4.  *  This header file defines all Tools Plus components (constants, variables and
  5.  *    structures).  Programs using Tools Plus must include this header file.
  6.  */
  7.  
  8.  
  9. #ifndef __ToolsPlus__
  10. #define __ToolsPlus__
  11.  
  12.  
  13.  
  14.  
  15. #define        UseColor        true            /* INITIALIZATION: Use color if available        */
  16. #define        IgnoreColor        false            /*                   Don't use color                */
  17. #define        doNothing        0                /* POLLING:    no event                            */
  18. #define        doChgWindow        1                /*            user clicked in an inactive window    */
  19. #define        doRefresh        2                /*            a window has to be refreshed        */
  20. #define        doGoAway        3                /*            the close box was clicked            */
  21. #define        doButton        4                /*            button was clicked                    */
  22. #define        doMenu            5                /*            menu was selected                    */
  23. #define        doKeyDown        6                /*            a keyboard key was pressed            */
  24. #define        doAutoKey        7                /*            a keyboard key is auto-repeating    */
  25. #define        doKeyUp            8                /*            a keyboard key was released            */
  26. #define        doClickField    9                /*            mouse clicked in inactive field        */
  27. #define        doScrollBar        10                /*            mouse clicked in a scroll bar        */
  28. #define        doListBox        11                /*            some sort of List Box activity        */
  29. #define        doClick            12                /*            mouse click/drag [1..3]             */
  30. #define        doPopUpMenu        13                /*            pop-up menu was selected            */
  31. #define        doPictButton    14                /*            picture button activity                */
  32. #define        doClickControl    101                /*            mouse clicked in a custom control    */
  33. #define        doManualEvent    102                /*            manually processed events            */
  34. #define        doMoveWindow    103                /*            a window was dragged by user        */
  35. #define        doGrowWindow    104                /*            a window was "grown" by user        */
  36. #define        doClickDesk        105                /*            mouse clicked in the desk top        */
  37. #define        doZoomWindow    106                /*            zoom box was clicked by user        */
  38. #define        doSuspend        107                /*            appl. suspended (in background)        */
  39. #define        doResume        108                /*            appl. resumed (now active appl.)    */
  40. #define        doChgInField    109                /*            editing field contents was changed    */
  41. #define        doPreRefresh    110                /*            refresh window before T+ objects    */
  42. #define        inUpButton        20                /*        Parts of Scroll Bar:    Up button        */
  43. #define        inDownButton    21                /*                                Down button        */
  44. #define        inPageUp        22                /*                                Page Up area    */
  45. #define        inPageDown        23                /*                                Page Down area    */
  46. #define        inThumb            129                /*                                Thumb            */
  47. #define        inClick1        1                /* CLICK:    mouse single-click completed        */
  48. #define        inClick2        2                /*            mouse double-click completed        */
  49. #define        inClick3        3                /*            mouse triple-click completed        */
  50. #define        inClick1Drag    -1                /*            mouse single-click, still dragging    */
  51. #define        inClick2Drag    -2                /*            mouse double-click, still dragging    */
  52. #define        inClick3Drag    -3                /*            mouse triple-click, still dragging    */
  53. #define        EnterKey        (char)0x03        /* KEYS:    Key characters (ASCII) for the most    */
  54. #define        BackSpaceKey    (char)0x08        /*              commonly encountered keys.  In    */
  55. #define        TabKey            (char)0x09        /*              some cases, several keys produce    */
  56. #define        ReturnKey        (char)0x0D        /*              the same ASCII character.  They    */
  57. #define        EscClearKey        (char)0x1B        /* (0x1B)      may be differentiated by using    */
  58. #define        LeftArrowKey    (char)0x1C        /*               the key code, as indicated below.    */
  59. #define        RightArrowKey    (char)0x1D        /*              Some keys are available only on    */
  60. #define        UpArrowKey        (char)0x1E        /*              an "extended" keyboard.            */
  61. #define        DownArrowKey    (char)0x1F        /*                                                */
  62. #define        HelpKey            (char)0x05        /*                                                */
  63. #define        HomeKey            (char)0x01        /*                                                */
  64. #define        DeleteFwdKey    (char)0x7F        /*                                                */
  65. #define        EndKey            (char)0x04        /*                                                */
  66. #define        PageUpKey        (char)0x0B        /*                                                */
  67. #define        PageDownKey        (char)0x0C        /*                                                */
  68. #define        FKey            (char)0x10        /* (0x10)    Function keys "F1" to "F15"            */
  69. #define        EscKeyCode        0x35            /* (0x1B)    KEY CODES used to differentiate        */
  70. #define        ClearKeyCode    0x47            /* (0x1B)      between keys which produce the    */
  71. #define        F1KeyCode        0x7A            /* (0x10)      same key characters.                */
  72. #define        F2KeyCode        0x78            /*                                                */
  73. #define        F3KeyCode        0x63            /*                                                */
  74. #define        F4KeyCode        0x76            /*                                                */
  75. #define        F5KeyCode        0x60            /*                                                */
  76. #define        F6KeyCode        0x61            /*                                                */
  77. #define        F7KeyCode        0x62            /*                                                */
  78. #define        F8KeyCode        0x64            /*                                                */
  79. #define        F9KeyCode        0x65            /*                                                */
  80. #define        F10KeyCode        0x6D            /*                                                */
  81. #define        F11KeyCode        0x67            /*                                                */
  82. #define        F12KeyCode        0x6F            /*                                                */
  83. #define        F13KeyCode        0x69            /*                                                */
  84. #define        F14KeyCode        0x6B            /*                                                */
  85. #define        F15KeyCode        0x71            /*                                                */
  86. #define        mDividingLine    "\p-"            /* MENUS:    Dividing line                        */
  87. #define        AppleChar        (char)0x14        /* MENU CHARS:    Apple character                    */
  88. #define        CheckChar        (char)0x12        /*                Check Mark character            */
  89. #define        DiamondChar        (char)0x13        /*                Diamond character                */
  90. #define        DotChar            (char)0xA5        /*                Dot (or bullet) character        */
  91. #define        NoChar            (char)0x00        /*                no character                    */
  92.                                             /* PICTURE BUTTONS:                                */
  93. #define        picbutInstantEvent      0x80000000/*        Report event on mouse-down                */
  94. #define        picbutTrackWithHilite 0x40000000/*        Track using hiliting, like radio button    */
  95. #define        picbutLockSelected      0x20000000/*        Lock if selected (mouse can't deselect)    */
  96. #define        picbutSwitchSelected  0x10000000/*        Switch 'selected' state if clicked        */
  97. #define        picbutRepeatEvents      0x08000000/*        Repeat event when button is held down    */
  98. #define        picbutAutoValueChg      0x04000000/*        Automatically change button's value        */
  99. #define        picbutScaleLinear      0x00000000/*        Rate of automatic value change…            */
  100. #define        picbutScaleSlowAccel  0x01000000/*            Linear, Slow Acceleration,            */
  101. #define        picbutScaleMedAccel      0x02000000/*            Medium Acceleration, and            */
  102. #define        picbutScaleFastAccel  0x03000000/*            Fast Acceleration.                    */
  103. #define        picbutLinear          0x0        /*            Linear (use in structure)            */
  104. #define        picbutSlowAccel          0x1        /*            Slow (use in structure)                */
  105. #define        picbutMedAccel          0x2        /*            Medium (use in structure)            */
  106. #define        picbutFastAccel          0x3        /*            Fast (use in structure)                */
  107. #define        picbutValueWrap          0x00800000/*        Button's range of values 'wrap' around    */
  108. #define        picbutLeftRightSplit  0x00400000/*        Left side reduces value, right increases*/
  109. #define        picbutTopBottomSplit  0x00200000/*        Top increases value, bottom reduces        */
  110. #define        picbutMultiStage      0x00100000/*        Button has multiple stages                */
  111. #define        picbutBigSICN3D          0x00080000/*        Create a larger SICN 3D button            */
  112. #define        picbutUsePICTS          0x00040000/*        Use PICTs instead of icons                */
  113. #define        picbutGray4use8          0x00020000/*        Use 8-bit color pict on 4-bit gray CRT    */
  114.                                             /*      Selection Effects…                        */
  115. #define        picbutSelectDarken      0x00010000/*        Darken image                            */
  116. #define        picbutSelectDarkenSICN3D  0x00008000/*    Darken (and push in) a 3D SICN icon        */
  117. #define        picbutSelectLightenSICN3D 0x00004000/*    Lighten (and push in) a 3D SICN icon    */
  118. #define        picbutSelectPushedSICN3D  0x00002000/*    Same color (and push in) a 3D SICN icon    */
  119. #define        picbutSelectAltImage      0x00000400/*    Use an alternate image                    */
  120.                                                 /*Disabling Effects…                        */
  121. #define        picbutDimUsingBlackLite      0x00000100/*    Overlay Black color using Lt Gray pat.    */
  122. #define        picbutDimUsingWhiteLite      0x00000080/*    Overlay White color using Lt Gray pat.    */
  123. #define        picbutDimUsingWhite          0x00000040/*    Overlay White color using Gray pat.        */
  124. #define        picbutDimLeaveBorder      0x00000008/*    Leave border when applying effect        */
  125. #define        picbutDimAltImage          0x00000004/*    Use an alternate image                    */
  126. #define        picbutDimNoChange          0x00000002/*    Button looks the same when disabled        */
  127.                                             /* POP-UP MENUS:                                */
  128. #define        popupNeverDimOutline    0x0100    /*        Never dim the control's outline?        */
  129. #define        popupNeverDimSelection    0x0080    /*        Never dim the selected item's text?        */
  130. #define        popupNeverDimTitle        0x0040    /*        Never dim the title?                    */
  131. #define        popupNoArrow            0x0020    /*        Is the "down arrow" hidden?                */
  132. #define        popupMultiSelect        0x0010    /*        Allow multiple items to be selected?    */
  133. #define        popupUseWFont            0x0008    /*        Use the window's font for the menu?        */
  134. #define        popupIconTitle            0x0004    /*        Draw icon in the control's title?        */
  135. #define        popupFixedTitle            0x0002    /*        Is fixed title displayed in the control?*/
  136. #define     popupDefaultType        0x0000    /*        Default menu (sys font, 1 item, no icon)*/
  137. #define        arrowCursor        0                /* CURSORS:    "arrow" cursor                        */
  138. #define        GoAway            true            /* WINDOWS:    no "close box"                        */
  139. #define        NoGoAway        false            /*            window has a "close box"            */
  140. #define        Modal            true            /*            window is "modal"                    */
  141. #define        NotModal        false            /*            window is not "modal                */
  142. #define        ZoomBox         8                /*            zoom box (add to procID)            */
  143. #define        wCenter         0x00010000        /*            auto-centering (add to procID)        */
  144. #define        wTile           0x00020000        /*            auto-tiling (add to procID)            */
  145. #define        wPalette        0x80000000        /*            palette behavior (add to procID)    */
  146. #define        ordPaletteProc  32000            /*            window that looks like Palette        */
  147. #define        paletteProc        32000 + wPalette/*            T+’s Floating Palette window        */
  148. #define        altPaletteProc    32002 + wPalette/*            T+’s palette with drag bar on left    */
  149. #define        wNoKind            0                /*        Kinds of Windows:    Not open            */
  150. #define        wToolBarKind    1                /*                            Tool Bar            */
  151. #define        wFloatingKind    2                /*                            Floating Palette    */
  152. #define        wStandardKind    3                /*                            Standard Window        */
  153. #define        wAnimateMove        0x01        /*      Moving Windows:    Animate w/Zoom Lines    */
  154. #define        wOffsetForToolBar    0x02        /*                        Offset co-ords for TB    */
  155. #define        wShow                true        /*        Hiding Windows:    Display (unhide)        */
  156. #define        wHide                false        /*                        Hide window                */
  157. #define        tbShiftWindows        0x01        /*TOOL BAR:    Shift windows when TB opens            */
  158. #define        tbOffsetNewWindows    0x02        /*            Offset new windows as they are        */
  159.                                             /*                opened (if Tool Bar is open).    */
  160. #define        DefaultButton    4                /* BUTTONS:    "default" for the window            */
  161. #define        selected        true            /*            button is selected (ie: checked)    */
  162. #define        notSelected        false            /*            button is not selected                */
  163. #define        useWFont        8                /*            use parent window's font            */
  164. #define        scrlLeftEdge    -1                /* SCROLL BARS:    left edge of document            */
  165. #define        scrlTopEdge        -1                /*                top edge of document            */
  166. #define        scrlRightEdge    32767            /*                right edge of document            */
  167. #define        scrlBottomEdge    32767            /*                bottom edge of document            */
  168.                                             /* LIST BOXES:                                    */
  169. #define        lOnlyOne        -128            /*        Prohibit multiple selections            */
  170. #define        lExtendDrag        64                /*        Drag extends without shift key            */
  171. #define        lNoDisjoint        32                /*        Click deselects previsous selections    */
  172. #define        lNoExtend        16                /*        Shift won't extend selection            */
  173. #define        lNoRect            8                /*        Don't expand selection as a rectangle    */
  174. #define        lUseSense        4                /*        Shift senses state of initial line        */
  175.                                             /* BUTTONS, MENUS, SCROLL BARS & ICONS:            */
  176. #define        enabled            true            /*            enabled (active)                    */
  177. #define        disabled        false            /*            disabled (dim, inactive)            */
  178. #define        teBoxNoCR        0                /* EDIT FIELDS:    box around field, no CR allowed    */
  179. #define        teBoxCR            1                /*                box around field, CR allowed    */
  180. #define        teNoBoxNoCR        2                /*                no box, no CR allowed            */
  181. #define        teNoBoxCR        3                /*                no box, CR allowed                */
  182. #define        teJustLeft        0                /*                text is left aligned            */
  183. #define        teJustCenter    1                /*                text is centered                */
  184. #define        teJustRight        -1                /*                text is right aligned            */
  185. #define        teSelectAll        0                /* EDIT FIELD SELECTION: all of text            */
  186. #define        teSelectStart    1                /*                         beginning of text        */
  187. #define        teSelectEnd        2                /*                         end of text            */
  188. #define        teReplace        true            /* PASTE INTO FIELD: replace field contents        */
  189. #define        teInsert        false            /*                     insert text into field        */
  190. #define        OkAltBut        1                /* ALERTS:    OK                (Buttons)            */
  191. #define        CanAltBut        2                /*            Cancel                                */
  192. #define        YesAltBut        3                /*            Yes                                    */
  193. #define        NoAltBut        4                /*            No                                    */
  194. #define        ContAltBut        5                /*            Continue                            */
  195. #define        SkipAltBut        6                /*            Skip                                */
  196. #define        QuitAltBut        7                /*            Quit                                */
  197. #define        NoButtonAlert    0                /*            No buttons        (Combinations)        */
  198. #define        OkAlert            11100            /*            OK (default)                        */
  199. #define        CanAlert        11200            /*            Cancel (default)                    */
  200. #define        OkCanAlert        22210            /*            OK (default) + Cancel                */
  201. #define        CanOkAlert        21210            /*            OK + Cancel (default)                */
  202. #define        YesNoAlert        22430            /*            Yes (default) + No                    */
  203. #define        NoYesAlert        21430            /*            Yes + No (default)                     */
  204. #define        YesNoCanAlert    33243            /*            Yes (default) + No + Cancel            */
  205. #define        NoYesCanAlert    32243            /*            Yes + No (default) + Cancel            */
  206. #define        nmSysBeep        -1                /* NOTIFICATION: Use System Error sound            */
  207. #define        nmSilentNote    0                /*                 Silent notification            */
  208. #define        nmDefaultMsg    "\p "            /*                 Use default message            */
  209. #define        nmNoMsg            "\p"            /*                 Don't display an alert            */
  210. #define        nmResetWhenDone    true            /*                 Reset to defaults after used    */
  211. #define        nmKeepSettings    false            /*                 Keep settings after used        */
  212. #define        NoIcon            -32768            /* ICONS:    No icon used                        */
  213. #define        stopIcon        0                /*            Stop icon                            */
  214. #define        noteIcon        1                /*            Note icon                            */
  215. #define        cautionIcon        2                /*            Caution icon                        */
  216.                                             /*        Disabled icons' default appearance…        */
  217. #define        DfltIconDimBlackLtPat 0x01        /*        Overlay Black color w/ Lt Gray pattern    */
  218. #define        DfltIconDimWhiteLtPat 0x02        /*        Overlay White color w/ Lt Gray pattern    */
  219. #define        DfltIconDimWhitePat      0x04        /*        Overlay White color w/ Gray pattern        */
  220. #define        DfltIconLeaveBorder      0x20        /*      Leave border when selected or disabled    */
  221. #define        DfltIconUpdateNow   0x8000        /*      Update all windows with changes            */
  222. #define        on                true            /* MISCELLANEOUS:                                */
  223. #define        off                false            /*                                                */
  224. #define        maxNullTime        0x7FFFFFFF        /*            Infinite time between doNothing evts*/
  225. #define        ZoomAcross        0                /* ZOOM LINES: transitional                        */
  226. #define        ZoomIn            -1                /*               zoom inward (further away)        */
  227. #define        ZoomOut            1                /*               zoom outward (nearer)            */
  228. #define        none            0                /* used primarily for polling                    */
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235. /* - - - - - - These record "types" are used for information transfer between - - - - - - -    */
  236. /*                         your application and Tools Plus libraries.                            */
  237.  
  238. /*= Polling record's "event modifiers" info*/
  239.   union TPModifiersRec {                    /*This variable record contains an event's        */
  240.                                             /*    "modifiers" in 2 formats…                    */
  241.                                             /*    • Macintosh Event:                            */
  242.         short Num;                            /*        short (bit operations required)            */
  243.         struct {                            /*    • Modifier short parsed into components:    */
  244.             unsigned short bit15 :1;        /*        (reserved bit)                            */
  245.             unsigned short bit14 :1;        /*        (reserved bit)                            */
  246.             unsigned short bit13 :1;        /*        (reserved bit)                            */
  247.             unsigned short ControlKey :1;    /*        Control key was down at event (=1)        */
  248.             unsigned short OptionKey :1;    /*        Option key was down at event (=1)        */
  249.             unsigned short CapsLock :1;        /*        Caps Lock was down at event (=1)        */
  250.             unsigned short ShiftKey :1;        /*        Shift key was down at event (=1)        */
  251.             unsigned short CmdKey :1;        /*        Command key was down at event (=1)        */
  252.             unsigned short MouseUp :1;        /*        Mouse button was UP at event (=1)        */
  253.             unsigned short bit6 :1;            /*        (reserved bit)                            */
  254.             unsigned short bit5 :1;            /*        (reserved bit)                            */
  255.             unsigned short bit4 :1;            /*        (reserved bit)                            */
  256.             unsigned short bit3 :1;            /*        (reserved bit)                            */
  257.             unsigned short bit2 :1;            /*        (reserved bit)                            */
  258.             unsigned short bit1 :1;            /*        (reserved bit)                            */
  259.             unsigned short bit0 :1;            /*        (reserved bit)                            */
  260.         } Bits;                                /*                                                */
  261.     };
  262.     typedef union TPModifiersRec TPModifiersRec;
  263. /*= Polling record's "button" info*/
  264.       struct TPPollButtonRec {
  265.         short Num;                            /*Button number                                    */
  266.         Boolean DoubleClick;                /*Did a double-click occur?                        */
  267.     };
  268.     typedef struct TPPollButtonRec TPPollButtonRec;
  269. /*= Polling record's "scroll bar" info*/
  270.       struct TPPollScrollBarRec {
  271.         short Num;                            /*Scroll bar number                                */
  272.         short Part;                            /*Scroll bar's part                                */
  273.     };
  274.     typedef struct TPPollScrollBarRec TPPollScrollBarRec;
  275. /*= Polling record's "list box" info*/
  276.     struct TPPollListBoxRec {
  277.         short Num;                            /*List box number                                */
  278.         Boolean DoubleClick;                /*Did a double-click occur?                        */
  279.     };
  280.     typedef struct TPPollListBoxRec TPPollListBoxRec;
  281. /*= Polling record's "menu" info*/
  282.     struct TPPollMenuRec {
  283.         short Num;                            /*Menu number                                    */
  284.         short Item;                            /*Menu item number                                */
  285.     };
  286.     typedef struct TPPollMenuRec TPPollMenuRec;
  287. /*= Polling record's "key-stroke" info*/
  288.     struct TPPollKeyRec {
  289.         short Code;                            /*Logical key number of the typed key            */
  290.         char Chr;                            /*ASCII character generated by typed key        */
  291.         Byte Unused;                        /* (reserved byte)                                */                
  292.     };
  293.     typedef struct TPPollKeyRec TPPollKeyRec;
  294. /*= Polling record's "mouse location and time" info for mouse-down and mouse-up events*/
  295.     struct TPPollMousePointRec {
  296.         Point Where;                        /*Event location in local co-ordinates            */
  297.         long When;                            /*Event time in clock ticks from boot (1/60 sec)*/
  298.         TPModifiersRec Modifiers;            /*Event modifiers                                */
  299.     };
  300.     typedef struct TPPollMousePointRec TPPollMousePointRec;
  301. /*= Polling record's "mouse click/drag" info*/
  302.     struct TPPollMouseRec {
  303.         short What;                            /*What type of mouse event? (click or drag)        */
  304.         TPPollMousePointRec Down[3];        /*Where & when did the mouse-down occur            */
  305.         TPPollMousePointRec Up[3];            /*Where & when did the mouse-up occur            */
  306.         Point Where;                        /*Current mouse location in local co-ordinates    */
  307.     };
  308.     typedef struct TPPollMouseRec TPPollMouseRec;
  309. /*= POLLING record for Tools Plus*/
  310.     struct TPPollRecord {                    /*Tools Plus Polling record…                    */
  311.         short What;                            /*What type of event has occurred?                */
  312.         short Window;                        /*Window number of the event                    */
  313.         TPPollButtonRec Button;                /*Button number/double-click status                */
  314.         TPPollScrollBarRec ScrollBar;        /*Scroll bar number/scroll bar part                */
  315.         short Field;                        /*Field number of event                            */
  316.         TPPollListBoxRec ListBox;            /*List box number/double-click status            */
  317.         TPPollMenuRec Menu;                    /*Menu number/menu item of an event                */
  318.         TPPollKeyRec Key;                    /*Logical key number & character of typed key    */
  319.         TPPollMouseRec Mouse;                /*Click/drag info: [1..3] where & when            */
  320.         TPModifiersRec Modifiers;            /*Modifier flags                                */
  321.         EventRecord Event;                    /*Macintosh Toolbox Event (raw)                    */
  322.     };
  323.     typedef struct TPPollRecord TPPollRecord;
  324.     typedef TPPollRecord *TPPollPointer;    /*Pointer to a Polling record                    */
  325.  
  326.  
  327. /*= WINDOW status information*/
  328.     struct TPWindowStatus {
  329.         short Kind;                            /*Window kind: Tool Bar, Palette, or Standard    */
  330.         Boolean Open;                        /*Is the window open?                            */
  331.         Boolean Visible;                    /*Is this window visible (not hidden)?            */
  332.         Boolean Active;                        /*Is this window active?                        */
  333.         Boolean Front;                        /*Is this the frontmost Tools Plus window?        */
  334.         Boolean Current;                    /*Is this the current window?                    */
  335.         Boolean WorkWindow;                    /*Is this the work window?                        */
  336.         Boolean EditFieldWindow;            /*Does this window have app's active field?        */
  337.         short ActiveField;                    /*Window's active field number                    */
  338.         Rect StrucRect;                        /*Structure rect (global). Incl border&title bar*/
  339.         Rect ContRect;                        /*Content rect (global).  Working area only.    */
  340.     };
  341.     typedef struct TPWindowStatus TPWindowStatus;
  342.  
  343.  
  344. /*= Color Pen information*/
  345.     struct ColorPenState {                    /*Color equivalent for a 'PenState' record.        */
  346.         PenState PenState;                    /*    This record also stores additional values    */
  347.         RGBColor ForegroundColor;            /*    for the window's foreground and background    */
  348.         RGBColor BackgroundColor;            /*    colors.                                        */
  349.     };
  350.     typedef struct ColorPenState ColorPenState;
  351.  
  352.  
  353. /*= Picture Button Appearance & Behavior Specification (or you can use constants instead)    */
  354.     union TPPictButtonSpec {                        /*Picture Button's appearance and        */
  355.                                                     /*    behavior specs in 2 formats…        */
  356.         struct{                                        /* • Parsed into components:            */
  357.             unsigned short InstantEvent: 1;            /*        Report event on mouse-down        */
  358.             unsigned short TrackWithHilite: 1;        /*        Track using hiliting (like a    */
  359.                                                     /*            radio button)                */
  360.             unsigned short LockSelected: 1;            /*        Lock if selected (mouse can't    */
  361.                                                     /*            deselect)                    */
  362.             unsigned short SwitchSelected: 1;        /*        Switch 'select' state if clicked*/
  363.             unsigned short RepeatEvents: 1;            /*        Repeat event when button is held*/
  364.             unsigned short AutoValueChg: 1;            /*        Automatically chg button's value*/
  365.             unsigned short AutoValueScaling: 3;        /*        Rate of chg for button's value    */
  366.             unsigned short ValueWrap: 1;            /*        Button's range of values 'wrap'    */
  367.                                                     /*            around.                        */
  368.             unsigned short LeftRightSplit: 1;        /*        Left side reduces value, right    */
  369.                                                     /*            increases.                    */
  370.             unsigned short TopBottomSplit: 1;        /*        Top increases value, bottom        */
  371.                                                     /*            reduces.                    */
  372.             unsigned short MultiStage: 1;            /*        Button has multiple stages        */
  373.             unsigned short BigSICN3D: 1;            /*        Create a larger SICN 3D button    */
  374.             unsigned short UsePICTS: 1;                /*        Use PICTs instead of icons        */
  375.             unsigned short Gray4use8: 1;            /*        Use 8-bit color pict on 4-bit    */
  376.                                                     /*            gray monitor.                */
  377.                                                     /*    Selection Effects…                    */
  378.             unsigned short SelectDarken: 1;            /*        Darken image                    */
  379.             unsigned short SelectDarkenSICN3D: 1;    /*        Darken (+push in) a 3D SICN icon*/
  380.             unsigned short SelectLightenSICN3D: 1;    /*        Lighten (+push in) 3D SICN icon    */
  381.             unsigned short SelectPushedSICN3D: 1;    /*        Same color (+push) 3D SICN icon    */
  382.             unsigned short bit19: 1;                /*           (reserved bit)                */
  383.             unsigned short bit20: 1;                /*           (reserved bit)                */
  384.             unsigned short SelectAltImage: 1;        /*        Use an alternate image            */
  385.             unsigned short bit22: 1;                /*           (reserved bit)                */
  386.                                                     /*   Disabling Effects…                    */
  387.             unsigned short DimUsingBlackLite: 1;    /*        Overlay Black color, Lt Gray pat*/
  388.             unsigned short DimUsingWhiteLite: 1;    /*        Overlay White color, Lt Gray pat*/
  389.             unsigned short DimUsingWhite: 1;        /*        Overlay White color, Gray pat.    */
  390.             unsigned short bit26: 1;                /*           (reserved bit)                */
  391.             unsigned short bit27: 1;                /*           (reserved bit)                */
  392.             unsigned short DimLeaveBorder: 1;        /*        Leave border when effect applied*/
  393.             unsigned short DimAltImage: 1;            /*        Use an alternate image            */
  394.             unsigned short DimNoChange: 1;            /*        Button looks same when disabled    */
  395.             unsigned short bit31: 1;                /*           (reserved bit)                */
  396.         } Bits;                                        /*                                        */
  397.         long Num;                                    /* • Long equivalent                    */
  398.     };                                                /*                                        */
  399.     typedef union TPPictButtonSpec TPPictButtonSpec;
  400.  
  401.  
  402. /*= Pop-Up Menu Appearance & Behavior Specification (or you can use constants instead)        */
  403.     union TPPopUpMenuSpec {                            /*Pop-Up Menu's appearance and behavior    */
  404.                                                     /*    specifications in 2 formats…        */
  405.         struct{                                        /* • Parsed into components:            */
  406.             unsigned short bit15 :1;                /*        (reserved bit)                    */
  407.             unsigned short bit14 :1;                /*        (reserved bit)                    */
  408.             unsigned short bit13 :1;                /*        (reserved bit)                    */
  409.             unsigned short bit12 :1;                /*        (reserved bit)                    */
  410.             unsigned short bit11 :1;                /*        (reserved bit)                    */
  411.             unsigned short bit10 :1;                /*        (reserved bit)                    */
  412.             unsigned short bit9 :1;                    /*        (reserved bit)                    */
  413.             unsigned short NeverDimOutline :1;        /*     Never dim the control's outline?    */
  414.             unsigned short NeverDimSelectedItem: 1;    /*     Never dim the selected item's text?*/
  415.             unsigned short NeverDimTitle: 1;        /*     Never dim the title?                */
  416.             unsigned short NoArrow: 1;                /*     Is the "down arrow" hidden?        */
  417.             unsigned short MultipleSelections: 1;    /*     Allow multiple items to be selected*/
  418.             unsigned short UseWindowFont: 1;        /*     Display using window's font?        */
  419.             unsigned short IconInTitle: 1;            /*     Draw icon in the control's title?    */
  420.             unsigned short FixedTitle: 1;            /*     Display fixed title in the control?*/
  421.             unsigned short bit0 :1;                    /*        (reserved bit)                    */
  422.         } Bits;                                        /*                                        */
  423.         short Num;                                    /* • Short equivalent                    */
  424.     };                                                /*                                        */
  425.     typedef union TPPopUpMenuSpec TPPopUpMenuSpec;
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432. #ifdef __cplusplus
  433. extern "C" {
  434. #endif
  435.  
  436. /*======================================== I N I T I A L I Z A T I O N ========================================    */
  437. /*Initialize Tools Plus*/
  438.     pascal Boolean InitToolsPlus (short MoreHandles,            /*Number of MoreMasters initializing cycles        */
  439.                                     short MaxWindows,            /*Maximum number of windows required            */
  440.                                     Boolean UseColorFlag         /*Should Color QuickDraw be used if available?    */
  441.                                     );                            /* = Was initialization successful?                */
  442.  
  443.  
  444.  
  445. /*=============================================== W I N D O W S ===============================================    */
  446. /*Open a window and make it current*/
  447.     pascal void WindowOpen (short Window,                        /*Window number                                    */
  448.                                     short left,                    /*Window's co-ordinates (global)                */
  449.                                     short top,                    /*                                                */
  450.                                     short right,                /*                                                */
  451.                                     short bottom,                /*                                                */
  452.                                     Str255 Title,                /*Window's title (if applicable)                */
  453.                                     long procID,                /*Window definition ID                            */
  454.                                     Boolean goAwayFlag,            /*Include Close Box?                            */
  455.                                     Boolean modalFlag);            /*Is window modal?                                */
  456.  
  457. /*Open a window and make it current (co-ordinates specified as a 'rect') */
  458.     pascal void WindowOpenRect (short Window,                    /*Window number                                    */
  459.                                     const Rect *Bounds,            /*Window's co-ordinates (global)                */
  460.                                     Str255 Title,                /*Window's title (if applicable)                */
  461.                                     long procID,                /*Window definition ID                            */
  462.                                     Boolean goAwayFlag,            /*Include Close Box?                            */
  463.                                     Boolean modalFlag);            /*Is window modal?                                */
  464.  
  465. /*Open the tool bar and make it current*/
  466.     pascal void ToolBarOpen (short Window,                        /*Window number                                    */
  467.                                     short Height,                /*Tool bar height                                */
  468.                                     short procID);                /*Appearance/behavior specifications            */
  469.  
  470. /*Close a window*/
  471.     pascal void WindowClose (short Window);                        /*Window number                                    */
  472.  
  473. /*Change a window's size*/
  474.     pascal void WindowSize (short Window,                        /*Window number                                    */
  475.                                     short Width,                /*Window's new width                            */                    
  476.                                     short Height,                /*Window's new height                            */
  477.                                     Boolean Update);            /*Force doRefresh event for newly exposed rgn?    */
  478.  
  479. /*Move a window to the specified co-ordinates*/
  480.     pascal void WindowMove (short Window,                        /*Window number                                    */
  481.                                     short hGlobal,                /*Horizontal co-ordinates (global)                */
  482.                                     short vGlobal,                /*Vertical co-ordinates (global)                */
  483.                                     short procID);                /*Behavior specifications                        */
  484.  
  485. /*Hide or show a window*/
  486.     pascal void WindowDisplay (short Window,                    /*Window number                                    */
  487.                                     Boolean Show);                /*Should the window be shown?                    */
  488.  
  489. /*Make a specified window the "active" and "current" window*/
  490.     pascal void ActivateWindow (short Window);                    /*Window number                                    */
  491.  
  492. /*Set a window's title*/
  493.     pascal void WindowTitle (short Window,                        /*Window number                                    */
  494.                                     Str255 Title);                /*Window's title (if applicable)                */
  495.  
  496. /*Set the current window's "growing" limits (ie: maximum/minimum size) */
  497.     pascal void SetWindowSizeLimits (short minHoriz,            /*Window's size limits in pixels                */
  498.                                     short minVert,                /*                                                */
  499.                                     short maxHoriz,                /*                                                */
  500.                                     short MaxVert);                /*                                                */
  501.  
  502. /*Set the current window's standard co-ordinates and user co-ordinates for "zooming"*/
  503.     pascal void SetWindowZoom (const Rect *userRect, const Rect *stdRect);    /*User & standard co-ords (global)    */
  504.  
  505. /*Get the current window's user co-ordinates & standard co-ordinates for "zooming"*/
  506.     pascal void GetWindowZoom (Rect *userRect, Rect *stdRect);    /*User & standard co-ordinates (global)            */
  507.  
  508. /*Make a specified window "current", but do not activate it*/
  509.     pascal void CurrentWindow (short Window);                    /*Window number                                    */
  510.  
  511. /*Make the "active" window the "current"*/
  512.     pascal void CurrentWindowReset(void);
  513.  
  514. /*Get a window's status*/
  515.     pascal void WindowStatus (short Window,                        /*Window number                                    */
  516.                                     TPWindowStatus *Status);    /*Window's status record                        */
  517.  
  518. /*Get the active window number (last used window if Tool Bar and/or Floating Palettes are open)    */
  519.     pascal short ActiveWindowNumber(void);                        /*Window number of active window                */
  520.  
  521. /*Get the current window number*/
  522.     pascal short CurrentWindowNumber(void);                        /*Window number of current window                */
  523.  
  524. /*Get the front most window number*/
  525.     pascal short FirstWindowNumber(void);                        /*Window number of front most window            */
  526.  
  527. /*Get the Tool Bar's window number*/
  528.     pascal short ToolBarNumber(void);                            /*Tool Bar's window number                        */
  529.  
  530. /*Get the first floating Palette's window number*/
  531.     pascal short FirstPaletteNumber(void);                        /*Front most floating Palette's window number    */
  532.  
  533. /*Get the first standard window's number (not Tool Bar or Floating Palette).*/
  534.     pascal short FirstStdWindowNumber(void);                    /*Front most standard window's number            */
  535.  
  536. /*Get the working window number*/
  537.     pascal short WorkWindowNumber(void);                        /*Working window number                            */
  538.  
  539. /*Get the window number that contains the active editing field*/
  540.     pascal short EditFldWindowNumber(void);                        /*Window number containing active editing field    */
  541.  
  542. /*Determine if a window is open*/
  543.     pascal Boolean WindowIsOpen (short Window                    /*Window number                                    */
  544.                                     );                            /* = Is the window open?                        */
  545.  
  546. /*Determine if a window is visible (open and not hidden)*/
  547.     pascal Boolean WindowIsVisible (short Window                /*Window number                                    */
  548.                                       );                            /* = Is the window visible?                        */
  549.  
  550. /*Determine the type of window*/
  551.     pascal short WindowKind (short Window                        /*Window number                                    */
  552.                                        );                            /* = Kind of window                                */
  553.  
  554. /*Get a window's "window pointer" */
  555.     pascal WindowPtr WindowPointer (short Window                /*Window number                                    */
  556.                                     );                             /* = Window's pointer                            */
  557.  
  558.  
  559.  
  560. /*=============================================== B U T T O N S ===============================================    */
  561. /*Create a new button*/
  562.     pascal void NewButton (short Button,                        /*Button number                                    */
  563.                                     short left,                    /*Button's co-ordinates (local)                    */
  564.                                     short top,                    /*                                                */
  565.                                     short right,                /*                                                */
  566.                                     short bottom,                /*                                                */
  567.                                     Str255 Title,                /*Button's title                                */
  568.                                     short procID,                /*Button's definition ID                        */
  569.                                     Boolean EnabledFlag,        /*Enable the button?                            */
  570.                                     Boolean SelectedFlag);        /*Select the button?                            */
  571.  
  572. /*Create a new button (co-ordinates specified as a 'rect') */
  573.     pascal void NewButtonRect (short Button,                    /*Button number                                    */
  574.                                     const Rect *Bounds,            /*Button's co-ordinates (local)                    */
  575.                                     Str255 Title,                /*Button's title                                */
  576.                                     short procID,                /*Button's definition ID                        */
  577.                                     Boolean EnabledFlag,        /*Enable the button?                            */
  578.                                     Boolean SelectedFlag);        /*Select the button?                            */
  579.  
  580. /*Delete a button*/
  581.     pascal void DeleteButton (short Button);                    /*Button number                                    */
  582.  
  583. /*Enable/disable a button*/
  584.     pascal void EnableButton (short Button,                        /*Button number                                    */
  585.                                     Boolean EnabledFlag);        /*Enable the button?                            */
  586.  
  587. /*Select/deselect a button*/
  588.     pascal void SelectButton (short Button,                        /*Button number                                    */
  589.                                     Boolean SelectedFlag);        /*Select the button?                            */
  590.  
  591. /*Determine if a button is enabled*/
  592.     pascal Boolean ButtonIsEnabled (short Button                /*Button number                                    */
  593.                                     );                            /* = Is the button enabled?                        */
  594.  
  595. /*Determine if a button is selected*/
  596.     pascal Boolean ButtonIsSelected (short Button                /*Button number                                    */
  597.                                     );                            /* = Is the button selected?                    */
  598.  
  599. /*Set a button's title*/
  600.     pascal void ButtonTitle (short Button,                        /*Button number                                    */
  601.                                     Str255 Title);                /*Button's title                                */
  602.  
  603. /*Make a button the window's default button*/
  604.     pascal void SetDefaultButton (short Button);                /*Button number                                    */
  605.  
  606. /*Remove the "default button status" from the window's default button*/
  607.     pascal void NoDefaultButton(void);
  608.  
  609. /*"Flash" a push button as though it were pressed by the user*/
  610.     pascal void FlashButton (short Button);                        /*Button number                                    */
  611.  
  612.  
  613.  
  614. /*======================================= P I C T U R E   B U T T O N S ======================================    */
  615. /*Create a new Picture Button*/
  616.     pascal void NewPictButton (short Button,                    /*Picture button number                            */
  617.                                     short left,                    /*Button's top-left corner in window's local    */
  618.                                     short top,                    /*    co-ordinates.                                */
  619.                                     short BaseID,                /*Base image's ID number                        */
  620.                                     long procID,                /*Appearance and Behavior specifications        */
  621.                                     Boolean EnabledFlag,        /*"Button is enabled" flag                        */
  622.                                     Boolean SelectedFlag,        /*"Button is selected" flag                        */
  623.                                     short minimum,                /*Minimum limit of button's value                */
  624.                                     short value,                /*Button's value                                */
  625.                                     short maximum);                /*Maximum limit of button's value                */
  626.  
  627. /*Delete a picture button*/
  628.     pascal void DeletePictButton (short Button);                /*Picture button number                            */
  629.  
  630. /*Enable/disable a picture button*/
  631.     pascal void EnablePictButton (short Button,                    /*Picture button number                            */
  632.                                     Boolean EnabledFlag);        /*Enable the picture button?                    */
  633.  
  634. /*Select/deselect a picture button*/
  635.     pascal void SelectPictButton (short Button,                    /*Picture button number                            */
  636.                                     Boolean SelectedFlag);        /*Select the picture button?                    */
  637.  
  638. /*Get a picture button's minimum setting*/
  639.     pascal short GetPictButtonMin (short Button                    /*Picture button number                            */
  640.                                     );                            /* = Picture button's minimum setting            */
  641.  
  642. /*Set a picture button's minimum setting*/
  643.     pascal void SetPictButtonMin (short Button,                    /*Picture button number                            */
  644.                                     short minimum);                /*Picture button's minimum setting                */
  645.  
  646. /*Get a picture button's maximum setting*/
  647.     pascal short GetPictButtonMax (short Button                    /*Picture button number                            */
  648.                                     );                            /* = Picture button's maximum setting            */
  649.  
  650. /*Set a picture button's maximum setting*/
  651.     pascal void SetPictButtonMax (short Button,                    /*Picture button number                            */
  652.                                     short maximum);                /* = Picture button's maximum setting            */
  653.  
  654. /*Get a picture button's current value*/
  655.     pascal short GetPictButtonVal (short Button                    /*Picture button number                            */
  656.                                     );                            /* = Picture button's current value                */
  657.  
  658. /*Set a picture button's current value*/
  659.     pascal void SetPictButtonVal (short Button,                    /*Picture button number                            */
  660.                                     short value);                /*Picture button's value                        */
  661.  
  662. /*Set a picture button's current value, and simultaneously select/deselect it*/
  663.     pascal void SetPictButtonValSelect (short Button,            /*Picture button number                            */
  664.                                     short value,                /*Picture button's value                        */
  665.                                     Boolean SelectedFlag);        /*Select the picture button?                    */
  666.  
  667. /*Set a picture button's value acceleration 'automatic value changing'*/
  668.     pascal void SetPictButtonAccel (short Button,                /*Picture button number                            */
  669.                                     short Rate);                /*0 = Linear, 1-3 = Slow to fast acceleration    */
  670.  
  671. /*Set a picture button's speed for 'automatic value changing'*/
  672.     pascal void SetPictButtonSpeed (short Button,                /*Picture button number                            */
  673.                                     short Rate);                /*Rate of change (value increment per second)    */
  674.  
  675. /*Determine if a picture button is enabled*/
  676.     pascal Boolean PictButtonIsEnabled (short Button            /*Picture button number                            */
  677.                                     );                            /* = Is the button enabled?                        */
  678.  
  679. /*Determine if a picture button is selected*/
  680.     pascal Boolean PictButtonIsSelected (short Button            /*Picture button number                            */
  681.                                     );                            /* = Is the button selected?                    */
  682.  
  683. /*"Flash" a picture button as though it were pressed by the user*/
  684.     pascal void FlashPictButton (short Button);                    /*Picture button number                            */
  685.  
  686.  
  687.  
  688.  
  689. /*=========================================== S C R O L L   B A R S ===========================================    */
  690. /*Create a new scroll bar*/
  691.     pascal void NewScrollBar (short ScrollBar,                    /*Scroll bar number                                */
  692.                                     short left,                    /*Scroll bar's co-ordinates (local)                */
  693.                                     short top,                    /*                                                */
  694.                                     short right,                 /*                                                */
  695.                                     short bottom,                /*                                                */
  696.                                     Boolean EnabledFlag,        /*Enable the scroll bar?                        */
  697.                                     short minimum,                /*Minimum, current, and maximum value            */
  698.                                     short value,                /*                                                */
  699.                                     short maximum);                /*                                                */
  700.  
  701. /*Create a new scroll bar (co-ordinates specified as a 'rect') */
  702.     pascal void NewScrollBarRect (short ScrollBar,                /*Scroll bar number                                */
  703.                                     const Rect *Bounds,            /*Scroll bar's co-ordinates (local)                */
  704.                                     Boolean EnabledFlag,        /*Enable the scroll bar?                        */
  705.                                     short minimum,                /*Minimum, current, and maximum value            */
  706.                                     short value,                /*                                                */
  707.                                     short maximum);                /*                                                */
  708.  
  709. /*Delete a scroll bar*/
  710.     pascal void DeleteScrollBar (short ScrollBar);                /*Scroll bar number                                */
  711.  
  712. /*Enable/disable a scroll bar*/
  713.     pascal void EnableScrollBar (short ScrollBar,                /*Scroll bar number                                */
  714.                                     Boolean EnabledFlag);        /*Enable the scroll bar?                        */
  715.  
  716. /*Get a scroll bar's minimum setting*/
  717.     pascal short GetScrollBarMin (short ScrollBar                /*Scroll bar number                                */
  718.                                     );                            /*Scroll bar's minimum setting                    */
  719.  
  720. /*Set a scroll bar's minimum setting*/
  721.     pascal void SetScrollBarMin (short ScrollBar,                /*Scroll bar number                                */
  722.                                     short minimum);                /*Scroll bar's minimum setting                    */
  723.  
  724. /*Get a scroll bar's maximum setting*/
  725.     pascal short GetScrollBarMax (short ScrollBar                /*Scroll bar number                                */
  726.                                     );                            /* = Scroll bar's maximum setting                */
  727.  
  728. /*Set a scroll bar's maximum setting*/
  729.     pascal void SetScrollBarMax (short ScrollBar,                /*Scroll bar number                                */
  730.                                     short maximum);                /*Scroll bar's maximum setting                    */
  731.  
  732. /*Get a scroll bar's current value*/
  733.     pascal short GetScrollBarVal (short ScrollBar                /*Scroll bar number                                */
  734.                                     );                             /* = Scroll bar's current value                    */
  735.  
  736. /*Set a scroll bar's current value*/
  737.     pascal void SetScrollBarVal (short ScrollBar,                /*Scroll bar number                                */
  738.                                     short value);                /*Scroll bar's current value                    */
  739.  
  740.  
  741.  
  742. /*======================================== E D I T I N G   F I E L D S ========================================    */
  743. /*Allocate heap storage for a Pascal string, and initialize it.*/
  744.     pascal StringHandle NewStrHandle (short StringLen            /*Size of string being allocated (1-255 chars)    */
  745.                                     );                            /*Handle to allocated string                    */
  746.  
  747. /*Create a new field*/
  748.     pascal void NewField (short Field,                            /*Field number                                    */
  749.                                     short left,                 /*Field's viewing area co-ordinates (local)        */
  750.                                     short top,                    /*                                                */
  751.                                     short right,                /*                                                */
  752.                                     short bottom,                /*                                                */
  753.                                     Handle hStr,                /*Handle to edit field's text                    */
  754.                                     short teType,                /*Type: box around field and/or CR allowed?        */
  755.                                     short Just);                /*Justification: left, centre, right                */
  756.  
  757. /*Create a new field (co-ordinates specified as a 'rect') */
  758.     pascal void NewFieldRect (short Field,                        /*Field number                                    */
  759.                                     const Rect *Bounds,         /*Field's viewing area co-ordinates (local)        */
  760.                                     Handle hStr,                /*Handle to edit field's text                    */
  761.                                     short teType,                /*Type: box around field and/or CR allowed?        */
  762.                                     short Just);                /*Justification: left, centre, right            */
  763.  
  764. /*Delete a field*/
  765.     pascal void DeleteField (short Field);                        /*Field number                                    */
  766.  
  767. /*Activate a  field*/
  768.     pascal void ActivateField (short Field,                        /*Field number                                    */
  769.                                     short Selection);            /*Text selection: all, start, end                */
  770.  
  771. /*Deactivate the active field*/
  772.     pascal void DeactivateField(void);
  773.  
  774. /*Process a mouse click in an inactive field.  The click has been detected by the PollSystem routine.*/
  775.     pascal void ClickInField(void);
  776.  
  777. /*Get the active field's edited text*/
  778.     pascal void GetFieldString (Str255 EditString);                /*Field's edited text                            */
  779.  
  780. /*Save the active field's edited text in the field's string*/
  781.     pascal void SaveFieldString(void);
  782.  
  783. /*Determine the active field number*/
  784.     pascal short ActiveFieldNumber(void);                        /*Active field number                            */
  785.  
  786. /*Determine if a field is empty*/
  787.     pascal Boolean FieldIsEmpty (short Field                    /*Field number                                    */
  788.                                     );                            /* = Is the specified field empty?                */
  789.  
  790. /*Turn string length limiting on/off for each new field created starting now*/
  791.     pascal void FieldLengthLimit (Boolean Limits);                /*Should newly created fields be length-limited?*/
  792.  
  793. /*Offset a field*/
  794.     pascal void OffsetField (short Field,                        /*Field number                                    */
  795.                                     short dh, short dv);        /*Number of pixels to be offset (horiz/vert)    */
  796.  
  797. /*Paste text into a field*/
  798.     pascal void PasteIntoField (short Field,                    /*Field number                                    */
  799.                                     Str255 Text,                /*Text which is to be pasted                    */
  800.                                     Boolean Replace);            /*Replace all existing text in field?            */
  801.  
  802.  
  803.  
  804. /*============================================ L I S T   B O X E S ============================================    */
  805. /*Create a new List Box*/
  806.     pascal void NewListBox (short ListBox,                        /*List box number                                */
  807.                                     short left,                    /*List box co-ordinates (local)                    */
  808.                                     short top,                    /*                                                */
  809.                                     short right,                /*                                                */
  810.                                     short bottom,                /*                                                */                        
  811.                                     SignedByte BoxType);        /*Type of responses to mouse clicks, shift-        */
  812.                                                                 /*    click, dragging, etc.                        */
  813.  
  814. /*Create a new List Box (co-ordinates specified as a 'rect') */
  815.     pascal void NewListBoxRect (short ListBox,                    /*List box number                                */
  816.                                     const Rect *Bounds,            /*List box co-ordinates (local)                    */
  817.                                     SignedByte BoxType);        /*Type of responses to mouse clicks, shift-        */
  818.                                                                 /*    click, dragging, etc.                        */
  819.  
  820. /*Delete a List Box*/
  821.     pascal void DeleteListBox (short ListBox);                    /*List box number                                */
  822.  
  823. /*Set a line of text in a List Box*/
  824.     pascal void SetListBoxText (short ListBox,                    /*List box number                                */
  825.                                     short LineNum,                /*Line number                                    */
  826.                                     Str255 Text);                /*Text of specified line number                    */
  827.  
  828. /*Get a line of text from a List Box*/
  829.     pascal void GetListBoxText (short ListBox,                    /*List box number                                */
  830.                                     short LineNum,                /*Line number                                    */
  831.                                     Str255 Text);                /*Text of specified line number                    */
  832.  
  833. /*Get a List Box's line number whose text is greater than or equal to the specified string*/
  834.     pascal short SearchListBox (short ListBox,                    /*List box number                                */
  835.                                     Str255 Text                    /*Text being compared                            */
  836.                                     );                            /* = Line number of text                        */
  837.  
  838. /*Select/deselect a specified List Box line*/
  839.     pascal void SetListBoxLine (short ListBox,                    /*List box number                                */
  840.                                     short LineNum,                /*Line number                                    */
  841.                                     Boolean SetIt);                /*Selects the line?                                */
  842.  
  843. /*Determine if a specific List Box line is selected*/
  844.     pascal Boolean GetListBoxLine (short ListBox,                /*List box number                                */
  845.                                     short LineNum                /*Line number                                    */
  846.                                     );                            /* = Is the line selected?                        */
  847.  
  848. /*Get the line number of a selected line in a List Box, starting at LineNum and searching down*/
  849.     pascal short GetListBoxLines (short ListBox,                /*List box number                                */
  850.                                     short LineNum                /*Line number                                    */
  851.                                     );                            /* = Next selected line                            */
  852.  
  853. /*Insert a blank line into a List Box*/
  854.     pascal void InsertListBoxLine (short ListBox,                /*List box number                                */
  855.                                     short LineNum);                /*Line number                                    */
  856.  
  857. /*Delete a line from a List Box*/
  858.     pascal void DeleteListBoxLine (short ListBox,                /*List box number                                */
  859.                                     short LineNum);                /*Line number                                    */
  860.  
  861. /*Turn a List Box's text drawing on/off*/
  862.     pascal void DrawListBox (short ListBox,                        /*List box number                                */
  863.                                     Boolean DrawIt);            /*Draw the list box's text?                        */
  864.  
  865.  
  866.  
  867. /*================================================= M E N U S =================================================    */
  868. /*Create the "Apple" menu*/
  869.     pascal void AppleMenu (Str255 AboutName);                    /*Optional "About…" name                        */
  870.  
  871. /*Create a menu name, add/change a menu item, or rename an existing menu item*/
  872.     pascal void Menu (short MenuNumber,                            /*Menu number                                    */
  873.                                     short ItemNumber,            /*Item number within the menu                    */
  874.                                     Boolean EnabledFlag,        /*Enable the menu?                                */
  875.                                     Str255 MenuText);            /*Menu title or item name                        */
  876.  
  877. /*Attach a hierarchical menu to a menu item, or detach a hierarchical menu*/
  878.     pascal void AttachMenu (short MenuNumber,                    /*Menu number to which the submenu is attached    */
  879.                                     short ItemNumber,            /*Item number to which the submenu is attached    */
  880.                                     short SubMenuNumber);        /*Hierarchical menu number being attached        */
  881.  
  882. /*Insert a menu item*/
  883.     pascal void InsertMenuitem (short MenuNumber,                /*Menu number                                    */
  884.                                     short ItemNumber,            /*Item number where insertion is to be made        */
  885.                                     Boolean EnabledFlag,        /*Enable the menu?                                */
  886.                                     Str255 MenuText);            /*Item name                                        */
  887.  
  888. /*Remove an entire menu and its associated items, or a menu item*/
  889.     pascal void RemoveMenu (short MenuNumber,                    /*Menu number                                    */
  890.                                     short ItemNumber);            /*Item number within the menu (0=entire menu)    */
  891.  
  892. /*Display the menu bar after making changes through the Menu or RemoveMenu procedure*/
  893.     pascal void UpdateMenuBar(void);
  894.  
  895. /*Get a menu item's text*/
  896.     pascal void GetMenuString (short MenuNumber,                /*Menu number                                    */
  897.                                     short ItemNumber,            /*Item number within the menu                    */
  898.                                     Str255 MenuText);            /*Menu item's name                                */
  899.  
  900. /*Change the name of a menu item*/
  901.     pascal void RenameItem (short MenuNumber,                    /*Menu number                                    */
  902.                                     short ItemNumber,            /*Item number within the menu                    */
  903.                                     Str255 MenuText);            /*Menu item's name                                */
  904.  
  905. /*Enable/disable a menu or menu item*/
  906.     pascal void EnableMenu (short MenuNumber,                    /*Menu number                                    */
  907.                                     short ItemNumber,            /*Item number within the menu (or 0)            */
  908.                                     Boolean EnabledFlag);        /*Enable the menu or item?                        */
  909.  
  910. /*Display/remove a menu item's check mark*/
  911.     pascal void CheckMenu (short MenuNumber,                    /*Menu number                                    */
  912.                                     short ItemNumber,            /*Item number within the menu                    */
  913.                                     Boolean checked);            /*Place check mark beside the menu item?        */
  914.  
  915. /*Mark a menu item with a specified character (√ or •, etc)*/
  916.     pascal void MenuMark (short MenuNumber,                        /*Menu number                                    */
  917.                                     short ItemNumber,            /*Item number within the menu                    */
  918.                                     char markChar);                /*Menu item's character                            */
  919.  
  920. /*Get a menu item's ‘mark’ character (√ or •, etc) which is optionally displayed at the item's left side*/
  921.     pascal void GetMenuMark (short MenuNumber,                    /*Menu number                                    */
  922.                                     short ItemNumber,            /*Item number within the menu                    */
  923.                                     char *markChar);            /*Menu item's character                            */
  924.  
  925. /*Specify a keyboard equivalent for a menu item*/
  926.     pascal void MenuCmd (short MenuNumber,                        /*Menu number                                    */
  927.                                     short ItemNumber,            /*Item number within the menu                    */
  928.                                     char cmdChar);                /*Menu item's keyboard-equivalent character        */
  929.  
  930. /*Get a keyboard equivalent for a menu item*/
  931.     pascal void GetMenuCmd (short MenuNumber,                    /*Menu number                                    */
  932.                                     short ItemNumber,            /*Item number within the menu                    */
  933.                                     char *cmdChar);                /*Menu item's keyboard-equivalent character        */
  934.  
  935. /*Specify an icon to be displayed by a menu item*/
  936.     pascal void MenuIcon (short MenuNumber,                        /*Menu number                                    */
  937.                                     short ItemNumber,            /*Item number within the menu                    */
  938.                                     short IconSelector);        /*IconSelector + 256 = cicn or ICON ID            */
  939.  
  940. /*Get the specifier for the icon that is displayed by a menu item*/
  941.     pascal void GetMenuIcon (short MenuNumber,                    /*Menu number                                    */
  942.                                     short ItemNumber,            /*Item number within the menu                    */
  943.                                     short *IconSelector);        /*IconSelector + 256 = cicn or ICON ID            */
  944.  
  945. /*Set the character style for a menu item*/
  946.     pascal void MenuStyle (short MenuNumber,                    /*Menu number                                    */
  947.                                     short ItemNumber,            /*Item number within the menu                    */
  948.                                     Style theStyle);            /*Menu item's character style                    */
  949.  
  950. /*Determine the number of items in a menu*/
  951.     pascal short MenuItemCount (short MenuNumber                /*Menu number                                    */
  952.                                        );                            /* =Number of items in the menu                    */
  953.  
  954. /*Determine a menu's parent menu number*/
  955.      pascal void GetParentMenu (short *MenuNumber,                /*Parent menu's menu number                        */
  956.                                     short *ItemNumber,            /*Parent menu's item number                     */
  957.                                     short SubMenuNumber);        /*Menu number whose parent menu is determined    */
  958.  
  959. /*Determine a menu item's submenu number*/
  960.      pascal void GetSubMenu (short MenuNumber,                    /*Menu number                                    */
  961.                                     short ItemNumber,            /*Item number within the menu                    */
  962.                                     short *SubMenuNumber);        /*Menu number of this item's submenu            */
  963.  
  964. /*Highlight a menu in the menu bar, or turn off menu bar highlights*/
  965.     pascal void MenuHilite (short MenuNumber);                    /*Menu number                                    */
  966.  
  967.  
  968.  
  969. /*========================================== P O P - U P   M E N U S ==========================================    */
  970. /*Create a new Pop-Up menu*/
  971.     pascal void NewPopUp (short MenuNumber,                        /*Pop-Up Menu number                            */
  972.                                     short left,                    /*Enclosing rectangle co-ordinates (local)        */
  973.                                     short top,                    /*                                                */
  974.                                     short right,                /*                                                */
  975.                                     short bottom,                /*                                                */
  976.                                     Str255 MenuTitle,            /*Title                                            */
  977.                                     short procID,                /*Appearance and behavior specifications        */
  978.                                     Boolean EnabledFlag);        /*"Menu is enabled" flag                        */
  979.  
  980. /*Create a new Pop-Up menu (co-ordinates specified as a 'rect') */
  981.     pascal void NewPopUpRect (short MenuNumber,                    /*Pop-Up Menu number                            */
  982.                                     const Rect *Bounds,            /*Enclosing rectangle co-ordinates (local)        */
  983.                                     Str255 Title,                /*Title                                            */
  984.                                     short procID,                /*Appearance and behavior specifications        */
  985.                                     Boolean EnabledFlag);        /*"Menu is enabled" flag                        */
  986.  
  987. /*Add or change a Pop-Up menu item, or rename an existing menu item*/
  988.     pascal void PopUpMenu (short MenuNumber,                    /*Pop-Up Menu number                            */
  989.                                     short ItemNumber,            /*Item number within the menu                    */
  990.                                     Boolean EnabledFlag,        /*Enable the menu?                                */
  991.                                     Str255 MenuText);            /*Item name                                        */
  992.  
  993. /*Insert a Pop-Up menu item in the "current" window*/
  994.     pascal void InsertPopUpItem (short MenuNumber,                /*Pop-Up Menu number                            */
  995.                                     short ItemNumber,            /*Item number where insertion is to be made        */
  996.                                     Boolean EnabledFlag,        /*Is menu item enabled?                            */
  997.                                     Str255 MenuText);            /*Item name                                        */
  998.  
  999. /*Remove an Pop-Up menu, or a Pop-Up menu item*/
  1000.     pascal void RemovePopUp (short MenuNumber,                    /*Pop-Up Menu number                            */
  1001.                                     short ItemNumber);            /*Item number within the menu (0=entire menu)    */
  1002.  
  1003. /*Get an Pop-Up Menu item's text*/
  1004.     pascal void GetPopUpString (short MenuNumber,                /*Pop-Up Menu number                            */
  1005.                                     short ItemNumber,            /*Item number within the menu                    */
  1006.                                     Str255 MenuText);            /*Menu item's name                                */
  1007.  
  1008. /*Change the name of a Pop-Up Menu item*/
  1009.     pascal void RenamePopUp (short MenuNumber,                    /*Pop-Up Menu number                            */
  1010.                                     short ItemNumber,            /*Item number within the menu                    */
  1011.                                     Str255 MenuText);            /*Menu item's name                                */
  1012.  
  1013. /*Enable/disable a Pop-Up Menu or menu item*/
  1014.     pascal void EnablePopUp (short MenuNumber,                    /*Pop-Up Menu number                            */
  1015.                                     short ItemNumber,            /*Item number within the menu (or 0)            */
  1016.                                     Boolean EnabledFlag);        /*Enable the menu or item?                        */
  1017.  
  1018. /*Determine if a Pop-Up Menu is enabled*/
  1019.     pascal Boolean PopUpIsEnabled (short MenuNumber                /*Pop-Up Menu number                            */
  1020.                                     );                            /* = Is the menu enabled?                        */
  1021.  
  1022. /*Display/remove a Pop-Up Menu item's check mark*/
  1023.     pascal void CheckPopUp (short MenuNumber,                    /*Pop-Up Menu number                            */
  1024.                                     short ItemNumber,            /*Item number within the menu                    */
  1025.                                     Boolean checked);            /*Place check mark beside the menu item?        */
  1026.  
  1027. /*Mark a Pop-Up Menu item with a specified character (√ or •, etc)*/
  1028.     pascal void PopUpMark (short MenuNumber,                    /*Pop-Up Menu number                            */
  1029.                                     short ItemNumber,            /*Item number within the menu                    */
  1030.                                     char markChar);                /*Menu item's character                            */
  1031.  
  1032. /*Get a Pop-Up Menu item's ‘mark’ character (√ or •, etc) which is optionally displayed at the item's left side*/
  1033.     pascal void GetPopUpMark (short MenuNumber,                    /*Pop-Up Menu number                            */
  1034.                                     short ItemNumber,            /*Item number within the menu                    */
  1035.                                     char *markChar);            /*Menu item's character                            */
  1036.  
  1037. /*Specify an icon to be displayed by a Pop-Up Menu item*/
  1038.     pascal void PopUpIcon (short MenuNumber,                    /*Pop-Up Menu number                            */
  1039.                                     short ItemNumber,            /*Item number within the menu                    */
  1040.                                     short IconSelector);        /*IconSelector + 256 = cicn or ICON ID            */
  1041.  
  1042. /*Get the specifier for the icon that is displayed by a Pop-Up Menu item*/
  1043.     pascal void GetPopUpIcon (short MenuNumber,                    /*Pop-Up Menu number                            */
  1044.                                     short ItemNumber,            /*Item number within the menu                    */
  1045.                                     short *IconSelector);        /*IconSelector + 256 = cicn or ICON ID            */
  1046.  
  1047. /*Set the character style for a Pop-Up Menu item*/
  1048.     pascal void PopUpStyle (short MenuNumber,                    /*Pop-Up Menu number                            */
  1049.                                     short ItemNumber,            /*Item number within the menu                    */
  1050.                                     Style theStyle);            /*Menu item's character style                    */
  1051.  
  1052. /*Determine the number of items in a Pop-Up Menu*/
  1053.     pascal short PopUpItemCount (short MenuNumber                /*Pop-Up Menu number                            */
  1054.                                     );                            /* = Number of items in the menu                */
  1055.  
  1056. /*Determine the selected item in a Pop-Up Menu*/
  1057.     pascal short GetPopUpSelection (short MenuNumber            /*Pop-Up Menu number                            */
  1058.                                     );                            /*Selected item in the menu                        */
  1059.  
  1060.  
  1061.  
  1062. /*=============================================== C U R S O R S ===============================================    */
  1063. /*Change the cursor shape*/
  1064.     pascal void CursorShape (short CursorType);                 /*Cursor type                                    */
  1065.  
  1066. /*Reset the cursor to its appropriate shape depending on its location in the active window.*/
  1067.     pascal void ResetCursor(void);
  1068.  
  1069. /*Create a new Cursor Table*/
  1070.     pascal void NewCursorTable (short CursorTable,                /*Cursor table number                            */
  1071.                                     short CursorType);            /*Cursor type                                    */
  1072.  
  1073. /*Delete a Cursor Table*/
  1074.     pascal void DeleteCursorTable (short CursorTable);            /*Cursor table number                            */
  1075.  
  1076. /*Add a new Cursor Zone to a Cursor Table, or replace an existing Cursor Zone*/
  1077.     pascal void CursorZone (short CursorTable,                    /*Cursor table number                            */
  1078.                                     short CursorZone,            /*Cursor zone number                            */
  1079.                                     short CursorType,            /*Cursor type                                    */
  1080.                                     short left,                    /*Cursor zone's co-ordinates (local)            */
  1081.                                     short top,                    /*                                                */
  1082.                                     short right,                /*                                                */
  1083.                                     short bottom);                /*                                                */                        
  1084.  
  1085. /*Add a new Cursor Zone to a Cursor Table, or replace an existing Cursor Zone (co-ordinates specified as a 'rect') */
  1086.     pascal void CursorZoneRect (short CursorTable,                /*Cursor table number                            */
  1087.                                     short CursorZone,            /*Cursor zone number                            */
  1088.                                     short CursorType,            /*Cursor type                                    */
  1089.                                     const Rect *Bounds);        /*Cursor zone's co-ordinates (local)            */
  1090.  
  1091. /*Add a new Cursor Zone to a Cursor Table, or replace an existing Cursor Zone (co-ordinates specified as a 'region') */
  1092.     pascal void CursorZoneRgn (short CursorTable,                /*Cursor table number                            */
  1093.                                     short CursorZone,            /*Cursor zone number                            */
  1094.                                     short CursorType,            /*Cursor type                                    */
  1095.                                     RgnHandle ZoneRgn);            /*Cursor zone's region (local)                    */
  1096.  
  1097. /*Indicate that the cursor shape may have to be recalculated due to manually altering Cursor Zone regions.        */
  1098.     pascal void ChangedCursorZone(void);
  1099.  
  1100. /*Delete a Cursor Zone*/
  1101.     pascal void DeleteCursorZone (short CursorTable,            /*Cursor table number                            */
  1102.                                     short CursorZone);            /*Cursor zone number                            */
  1103.  
  1104. /*Get the co-ordinates of a specified Cursor Zone*/
  1105.     pascal void GetCursorZone (short CursorTable,                /*Cursor table number                            */
  1106.                                     short CursorZone,            /*Cursor zone number                            */
  1107.                                     Rect *Bounds);                /*Cursor zone's co-ordinates (local)            */
  1108.  
  1109. /*Get a Cursor Zone's region*/
  1110.     pascal RgnHandle GetCursorZoneRgn (short CursorTable,        /*Cursor table number                            */
  1111.                                        short CursorZone            /*Cursor zone number                            */
  1112.                                        );                            /* = Handle to Cursor region (local)            */
  1113.  
  1114. /*Make the current window use a specified Cursor Table*/
  1115.     pascal void UseCursorTable (short CursorTable);                /*Cursor table number                            */
  1116.  
  1117. /*Find the cursor zone that contains a specified point*/
  1118.     pascal short FindCursorZone (Point thePoint                    /*Location in window's local co-ordinates        */
  1119.                                     );                            /* = Cursor zone number containing the point    */
  1120.  
  1121. /*Enable/disable clicks on push-buttons when the watchCursor is displayed*/
  1122.     pascal void WatchCursorButtons (Boolean Allowed);            /*Can push-buttons be clicked when the            */
  1123.                                                                 /*    watchCursor is displayed?                    */
  1124.  
  1125.  
  1126.  
  1127. /*=============================================== P O L L I N G ===============================================    */
  1128. /*Tools Plus polling procedure*/
  1129.     pascal Boolean PollSystem (TPPollRecord *Poll                /*Polling record                                */
  1130.                                     );                            /* = Did an event occurred?                        */
  1131.  
  1132. /*Set the number of ticks (1/60 sec) your application can wait until it receives a doNothing event.*/
  1133.     pascal void SetNullTime (long ForegroundTime,                /*Duration when application is active            */
  1134.                                        long BackgroundTime);        /*Duration when application is suspended        */
  1135.  
  1136. /*Determine if "waiting for doNothing events" (timed doNothing events) is supported.*/
  1137.     pascal Boolean WaitAvail(void);                                /*Is waiting between doNothing events supported?*/
  1138.  
  1139. /*Determine if the application is 'suspended' (ie: this is not the active application)*/
  1140.     pascal Boolean ApplicationSuspended(void);                    /*Is the application suspended?                    */
  1141.  
  1142. /*Clear the mouse's current click or drag (ie: discontinue the process, clear the event*/
  1143.     pascal void ResetMouseClicks(void);
  1144.  
  1145.  
  1146.  
  1147. /*========================================= C O L O R   D R A W I N G =========================================    */
  1148. /*Determine if the Macintosh has color QuickDraw*/
  1149.     pascal Boolean HasColorQuickDraw(void);                        /*Does the Mac have color QuickDraw                */
  1150.  
  1151. /*Determine the number of logical screens (distinct screen depth and color/gray settings)*/
  1152.     pascal short NumberOfScreens(void);                            /*Number of logical screens available            */
  1153.  
  1154. /*Begin updating the specified logical screen*/
  1155.     pascal void BeginUpdateScreen (short TheScreen);            /*Logical screen number                            */
  1156.  
  1157. /*End updating the most recent logical screen*/
  1158.     pascal void EndUpdateScreen(void);
  1159.  
  1160. /*Determine the logical screen's depth*/
  1161.     pascal short ScreenDepth(void);                                /*Screen depth in bits                            */
  1162.  
  1163. /*Determine if the logical screen is set to display in color*/
  1164.     pascal Boolean ScreenHasColors(void);                        /*Is the screen set to display in color?        */
  1165.  
  1166. /*Color equivalent to 'PenNormal' routine*/
  1167.     pascal void PenColorNormal(void);
  1168.  
  1169. /*Color equivalent to 'GetPenState' routine*/
  1170.     pascal void GetColorPenState (ColorPenState *ThePenState);
  1171.  
  1172. /*Color equivalent to 'SetPenState' routine*/
  1173.     pascal void SetColorPenState (ColorPenState *ThePenState);
  1174.  
  1175.  
  1176.  
  1177. /*===================================== U S E R    N O T I F I C A T I O N ====================================    */
  1178. /*Define the settings for notifying the user.*/
  1179.     pascal void SetNotification (short IconID,                    /*'SICN' icon ID displayed during notification    */
  1180.                                     short SoundID,                /*Sound ID that is played at notification        */
  1181.                                     Str255 Message,                /*Message displayed during notification            */
  1182.                                     Boolean ResetAfterUse);        /*Revert settings to defaults after notification*/
  1183.  
  1184. /*If this application is inactive, inform user that this application needs attention.*/
  1185.     pascal Boolean PostNotification(void);                        /*Was the user notified?                        */
  1186.  
  1187.  
  1188.  
  1189. /*========================================= M I S C E L L A N E O U S =========================================    */
  1190. /*Determine the System file version*/
  1191.     pascal double SystemVersion(void);                            /*System file version (eg 7.0.1 seen as 7.01)    */
  1192.  
  1193. /*Draw an icon (ICON, ICN#, icl8, icl4, and cicn)*/
  1194.     pascal void DrawIcon (short theIcon,                        /*Icon ID number                                */
  1195.                                     short left,                    /*Icon's top-left corner (local)                */
  1196.                                     short top,                    /*                                                */
  1197.                                     Boolean EnabledFlag,        /*Enable the icon?                                */
  1198.                                     Boolean SelectedFlag);        /*Select the icon?                                */
  1199.  
  1200. /*Specify the default appearance for disabled icons*/
  1201.     pascal void DefaultIconLook (short IconSpec);                /*Appearance specifications                        */
  1202.  
  1203. /*Draw a standard Macintosh progress thermometer*/
  1204.     pascal void DrawThermometer (const Rect *DisplayRect,        /*Thermometer's co-ordinates (local)            */
  1205.                                     long Value,                    /*Current value                                    */
  1206.                                     long Maximum);                /*Maximum value (progress = Value ÷ Maximum)    */
  1207.  
  1208. /*Display a dynamic Alert Box and return the use's action*/
  1209.     pascal short AlertBox (short theIcon,                        /*Icon ID number                                */
  1210.                                     Str255 AlertText,            /*Alert's text                                    */
  1211.                                     long AlertCode                /*Button setup codes                            */
  1212.                                     );                            /* = Button clicked by user                        */
  1213.  
  1214. /*Change a button name for the next use of the dynamic Alert Box*/
  1215.     pascal void AlertButtonName (short Button,                    /*Button number from 1 to 9                        */
  1216.                                     Str255 Title);                /*Button's title                                */
  1217.  
  1218. /*Draw "zoom" lines (expanding/collapsing rectangle)*/
  1219.     pascal void ZoomLines (const Rect *OldRect,                    /*Starting rectangle (global co-ordinates)        */
  1220.                                     const Rect *NewRect,        /*Ending rectangle (global co-ordinates)        */
  1221.                                     short Zoom);                /*Zoom across, in, or out                        */
  1222.  
  1223. /*Play the System Error sound*/
  1224.     pascal void Beep(void);
  1225.  
  1226. /*Wait for a specified duration*/
  1227.     pascal void Wait (long ClockTicks);                            /*Number of ticks (1/60th sec) to wait            */
  1228.  
  1229. /*Determine the minimum value of 2 numbers*/
  1230.     pascal long min (long Val1, long Val2);
  1231.  
  1232. /*Determine the maximum value of 2 numbers*/
  1233.     pascal long max (long Val1, long Val2);
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239. #ifdef __cplusplus
  1240. }
  1241. #endif
  1242. #endif /* __ToolsPlus__ */
  1243.